From: Colin Walters Date: Sat, 13 Mar 2010 17:56:15 +0000 (-0500) Subject: [ShellApp] When fading, don't read alpha channel if none available X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~10319 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=32fd32315372333752d7ed7337f82d4f5e1d6058;p=gnome-shell.git [ShellApp] When fading, don't read alpha channel if none available --- diff --git a/src/shell-app.c b/src/shell-app.c index 08e80c25e..b2f9d8151 100644 --- a/src/shell-app.c +++ b/src/shell-app.c @@ -75,6 +75,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache, CoglHandle texture; gint width, height, rowstride; guint8 n_channels; + gboolean have_alpha; gint fade_start; gint fade_range; guint i, j; @@ -109,6 +110,7 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache, rowstride = gdk_pixbuf_get_rowstride (pixbuf); n_channels = gdk_pixbuf_get_n_channels (pixbuf); orig_pixels = gdk_pixbuf_get_pixels (pixbuf); + have_alpha = gdk_pixbuf_get_has_alpha (pixbuf); pixbuf_byte_size = (height - 1) * rowstride + + width * ((n_channels * gdk_pixbuf_get_bits_per_sample (pixbuf) + 7) / 8); @@ -127,14 +129,15 @@ shell_app_create_faded_icon_cpu (StTextureCache *cache, pixel[0] = 0.5 + pixel[0] * fade; pixel[1] = 0.5 + pixel[1] * fade; pixel[2] = 0.5 + pixel[2] * fade; - pixel[3] = 0.5 + pixel[3] * fade; + if (have_alpha) + pixel[3] = 0.5 + pixel[3] * fade; } } texture = cogl_texture_new_from_data (width, height, COGL_TEXTURE_NONE, - gdk_pixbuf_get_has_alpha (pixbuf) ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, + have_alpha ? COGL_PIXEL_FORMAT_RGBA_8888 : COGL_PIXEL_FORMAT_RGB_888, COGL_PIXEL_FORMAT_ANY, rowstride, pixels);